package com.czk.day03;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;

import java.util.List;

/**
 * 对流程信息进行操作
 * @Author ChenZhangKun
 * @Date 2020/9/10 14:53
 */
public class QueryProcessDefinition {
    public static void main(String[] args) {
        // 拿到流程引擎对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        // 得到repository对象
        RepositoryService repositoryService = processEngine.getRepositoryService();
        // 得到processDefinition对象，一个查询器
        ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
        // 可以查询大量的流程定义信息
        // 设置条件
        List<ProcessDefinition> holiday = processDefinitionQuery.processDefinitionKey("holiday")
                // 设置排序方式，根据版本号进行排序
                .orderByProcessDefinitionVersion()
                .desc()
                .list();
        // 输出流程的信息
        for (ProcessDefinition processDefinition : holiday) {
            System.out.println("流程定义的id"+processDefinition.getId());
            System.out.println("流程定义的名称"+processDefinition.getName());
            System.out.println("流程定义的key"+processDefinition.getKey());
            System.out.println("流程定义的版本号"+processDefinition.getVersion());
        }
    }
}
